<!doctype html>
<html>
<head>
  <title>Welcome</title>
  <style type="text/css">
  div.fs-welcome h2 {
    color: #04408c;
  }
  div.fs-welcome h3 {
    color: #048c40;
  }
  div.fs-welcome .red {
    color: #dd4040;
  }
  div.fs-welcome td {
    padding: 0px 10px 3px 10px;
  }
  div.fs-welcome p, li, ul {
    font-size: 14px;
  }
  </style>
</head>
<body>
<div class="fs-welcome">
<table border="1">
  <tr>
    <td colspan="3" style="vertical-align: top;">
      <h1>Welcome to dbfront</h1>
      <p>
        dbfront is a Free Software tool that makes seeing, understanding, acting on, and sharing your data easy and fun.
        It is integrated with its online cousin, <a href="http://www.dbfoundry.com">www.dbfoundry.com</a> so that you can make your data accessible as widely as you wish
        while still maintaining strict security controls over it.
        This "Welcome" page will give you a quick introduction to the user interface.
      </p>
      <h2>The Menu Bar (at the top)</h2>
      <h3>Register and Login (the System Menu at the right side of the Menu Bar)</h3>
      <p>
        The first thing you need to do is create a user account.
        The right hand side of the Menu Bar is the System Menu.
        Go to the User menu and 'Register' with a username, password, and as much additional information as you care to provide.
        Then on the same User menu, 'Login', using the same username and password you just registered with.
        Based on what user you login with, you will have access to the set of groups you belong to.
        Based on what group you select, you will have access to a set of applications.
        The one public application you will have even before you login is 'dbfront'.
      </p>
      <h3>Connect to or Create your own Database (the Application Menu at the left side of the Menu Bar)</h3>
      <p>
        You may have existing databases in MySQL, Oracle, or SQLite that you want to work with.
        Use the Database menu to define the database connection.
        You can select which Database, Schema, and Table you are working with at any time with the dbfoundry Application Menu.
        Soon you will define 'Favorite' Views of your data that will be available easily.
      </p>
      <p>
        You may also want to create your own database and load it with new data.
        Explore the Application Menu to see what you can do.
        Consult the 'Help' for more information.
      </p>
    </td>
  </tr>

  <tr>
    <td style="vertical-align: top;">
      <h2>The Navigation Panel (to the left)</h2>
      <p>
        You can change which navigation pane is displayed by clicking on the "[+]" and "[-]" tools.
        You can also adjust the width of the entire panel or hide it entirely by dragging the border or clicking on the '[&lt;&lt;]' tool.
      </p>
      <h3>Database Tables/Views Pane</h3>
      <p>
        The 'Database Tables/Views' navigational pane shows all of the databases, schemas, tables, and customized views of tables that are accessible in your current group.
        Find a table you are interested in and select it.
        A view of that table will appear as a tab in the Views Area.
        You can customize this view, save it, and it will appear as a Customized View of that table in the table tree.
        The Table Tree serves as a library of all of the native and custom views that have been defined.
        When a View is determined to be valuable for a special purpose, it can be saved to the View Organizer.
      </p>
      <h3>View Organizer Pane</h3>
      <p>
        The View Organizer Pane is a completely customizable set of nested folders for you to organize valuable data views for whatever use you wish.
        The special folder 'Favorites' is used to put certain views into the Favorites menu.
        The special folder 'Startup' is used to show these views every time you login.
        A common and recommended way to organize views is based around a task or decision that the data views are supposed to facilitate.
        New folders can be created by right-clicking on a folder or view.
        Views can be moved around by dragging them into a new folder.
      </p>
    </td>

    <td style="vertical-align: top;">
      <h2>The Views Area (in the center)</h2>
      <h3>View Tabs (the top row of the Views Area)</h3>
      <p>
        Each View that is opened (Table Grid Views, Dashboard Views, etc.) is controlled by a tab at the top of the Views Area.
        The View can be brought to the front by selecting the tab or dismissed by closing the tab (by clicking on the small "x" on the tab).
      </p>
      <h3>Tools in the Grid Toolbar and Header (the top rows of each Grid View)</h3>

      <p>
        You can customize the default view for the table and then "Save" it. Customization includes:
      </p>
        <ul>
          <li>Build a "Detail" (default) view or an "Aggregate" view (by clicking on the Aggregate checkbox). In an aggregate view, all reasonable numeric columns are summed and all ID and Character columns are available as aggregation keys.</li>
          <li>Hide columns (by clicking on the tool at the right of a column header, choosing "Columns", and deselecting certain columns)</li>
          <li>Reorder columns (by dragging and dropping the columns to new positions)</li>
          <li>Add columns from other related tables via SQL table joins (by selecting related tables in the Add Columns tool)</li>
          <li>Resize columns (by grabbing the right hand edge of the column heading and stretching it)</li>
          <li>Define filter criteria on any number of columns (click on the column tool and go to Filters)</li>
          <li>Sort any single column (by clicking on the heading and optionally clicking again to reverse the direction)</li>
        </ul>
      <p>
        When you save the customizations for a table view, it gets saved in the Default view for that table.
        You will likely want to create and save multiple customized views of some tables.
        You can save these customized views with the "Save As New View" button.
        Each alternate view will be saved in the Tables tree view under the table that it is derived from.
        You should also create some documentation and/or notes for the customized view by clicking on the Edit button (pencil icon) in the Messages/Info area on the right of the screen.
        After you create a customized view, you can open it and add it to the Task Organizer tree with the "Add to Task Organizer" button.
      </p>
      <h3>Details for Filtering</h3>
      <p>
        Many interesting features exist in the filters area. The following examples demonstrate the capabilities of the filtering.
      </p>
        <ul>
          <li><strong><span class="red">Numeric Fields</span></strong></li>
          <li><strong>5</strong> - a single number will match that number only</li>
          <li><strong>1-5</strong> - a numeric range will match any number in the range</li>
          <li><strong>1,3,5</strong> - a numeric list that will match any number in the list</li>
          <li><strong>&gt;5 OR &lt;5 OR &gt;=5 OR &lt;=5 OR !5 OR !=5 OR &lt;&gt;5 OR =5</strong> - a single number with a logical comparison test will match all numbers that fulfill that test</li>
          <li><strong><span class="red">Character/String Fields</span></strong></li>
          <li><strong>=ATL</strong> - matches that exact string of text</li>
          <li><strong>ATL* OR ATL???A OR *TA</strong> - the use of * and ? characters will create a DOS-like pattern match for all strings that apply (*=any number of characters, ?=any single character) (all character searches are case-insensitive)</li>
          <li><strong>ATL</strong> - any text fragment made up of only alphabetic characters, spaces, and periods ([A-Za-z \.]) will match if the text exists anywhere in the column (same as *ATL*, but it is convenient because it gets progressively more specific as you type) (a string made up of anything besides letters, spaces, and periods should be prefixed with "~" to get the same effect)</li>
          <li><strong>&gt;ATL OR &lt;ATL OR &gt;=ATL OR !ATL OR !=ATL OR &lt;&gt;ATL</strong> - a single string with a logical comparison test will match all strings that fulfill that test</li>
          <li><strong>ATL,LGA,DCA</strong> - a list of strings (indicated by the existence of commas) will match exactly any of the strings in the list</li>
          <li><strong>=ATL,LGA,DCA</strong> - matches the exact string (including commas or whatever)</li>
          <li><strong>=I said "Oh, #@$%^&*"!?!</strong> - match exactly an arbitrary piece of text</li>
          <li><strong>~VH1</strong> - same as *VH1* the string is contained somewhere in the target column</li>
          <li><strong>=~GDS_*</strong> - same as GDS_*, the string must match exactly but it may include DOS-like pattern matching (wildcard) characters (* and ?)</li>
          <li><strong>A-J</strong> - a string range will match any strings that start with letters in the range</li>
          <li><strong><span class="red">Date/Datetime Fields</span></strong></li>
          <li><strong>-1</strong> - a numeric constant on a date or datetime column will match all dates/datetimes from the current time to the current time plus the specified number of days</li>
          <li><strong>-7--3 OR 1-14</strong> - a numeric range on a date or datetime column will match all dates/datetimes in the range of days relative to the current time</li>
          <li><strong>20121225 OR 2012-12-05</strong> - will match a single date</li>
          <li><strong>20121225120000 OR 2012-12-05 12:00:00</strong> - will match a single datetime</li>
          <li><strong>20121225-20121226</strong> - will match a range of dates</li>
          <li><strong><span class="red">All Fields</span></strong></li>
          <li><strong>NULL</strong> - the word NULL will match if the column is NULL</li>
          <li><strong>!NULL</strong> - the word !NULL will match if the column is NOT NULL</li>
        </ul>

    </td>

    <td style="vertical-align: top;">
      <h2>The Information Panel (to the right)</h2>
      <h3>Source and Purpose of Information</h3>
      <p>
        The Information Panel shows a small user-entered piece of documentation about each view that is displayed.
        It is good practice to document each view when you create it so that whenever someone sees the view, they will see this documentation alongside it.
        You should write why the view was created, what to look for, and how to use the view in order to make important decisions.
      </p>
      <h3>Information Pane Visibility</h3>
      <p>
        You can show or hide the Information Panel by clicking on the '[&lt;&lt;]' or '[&gt;&gt;]' tools.
        You can adjust the width of the entire panel by dragging the border.
        You can change which information pane is displayed by clicking on the "[+]" and "[-]" tools.
      </p>
      <h3>Editing Information</h3>
      <p>
        If you click on the "pencil" tool, you will open an HTML editor window that will allow you to edit the documentation.
        Click the small "floppy disk" tool on the editor window to save the newly edited documentation.
      </p>
    </td>
  </tr>
</table>
</div>

</body>
</html>
